home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / GunTower.script < prev    next >
Text File  |  2001-10-22  |  5KB  |  183 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. // Common objects
  11. class CGunTowerMesh
  12. {
  13.   string MeshFile = "Models/B_GunTower.mesh";
  14.   string SkinFile = "Models/B_GunTower.skin";
  15.   string AnimFile = "Models/B_GunTower.anim";
  16. }
  17.  
  18. class CGunTowerTargetingAnimator
  19. {
  20.   string HorAnimName    = "tower";
  21.   string VerAnimName    = "gun";
  22.  
  23.   float  LeftEndAngle   = -180.0;
  24.   float  RightEndAngle  =  180.0;
  25.   float  TopEndAngle    = -10.0;
  26.   float  BottomEndAngle =  20.0;
  27.  
  28.   float  MaxAngleSpeed  = 180.0;
  29. }
  30.  
  31. class CGunTowerGun extends CBaseWeaponDescriptor
  32. {
  33.   int    AmmoQuantity      = -1;
  34.   float  BulletSpeed       = 600.0;
  35.   float  FireDeviation     = 0.02;
  36.   string LinkJointName     = "_Gun_Fire_01";
  37.  
  38.   string WeaponName        = "Gun";
  39.   float  FireWeaponDelay   = 0.1;
  40.   bool   IsAutotargeting   = false;
  41.   int    AttachSlotNumber  = 1;
  42. }
  43.  
  44. class CGunTowerBehavior extends
  45.     CBaseBehavior, CGunTowerFireParameters
  46. {
  47.   boolean CanMove = false;
  48.  
  49.   void CGunTowerBehavior()
  50.   {
  51.     CBaseBehavior();
  52.   }
  53. }
  54.  
  55. class CGunTowerFireParameters
  56. {
  57.   boolean  CanFire = true;
  58.  
  59.   int  FirePeriod        = 200; // ms
  60.   int  FirePeriodRandAdd = 100; // ms
  61.  
  62.   int  ShootGunNum = 1;
  63.  
  64.   boolean  BurstFire = true;
  65.   int  BurstTime         = 2000; // ms
  66.   int  BurstTimeRandAdd  = 1000; // ms
  67.  
  68.   int  BurstDelay        = 1000; // ms
  69.   int  BurstDelayRandAdd = 2000; // ms
  70.  
  71. // radar
  72.  
  73.   boolean  HasRadar = true;
  74.  
  75.   float  MaxRadarDistance = 1500; // m
  76.   float  MinRadarDistance = 10;   // m
  77.  
  78.   int    UpdateRadarPeriod        = 2000; // ms
  79.   int    UpdateRadarPeriodRandAdd = 1000; // ms
  80.  
  81.   boolean  FireFlying = true;
  82.   boolean  FireGround = true;
  83. };
  84.  
  85.  
  86.  
  87.  
  88. // German gun tower
  89.  
  90. class CGermanGunTowerStateControl extends CUnitLifeControl
  91. {
  92.   void CGermanGunTowerStateControl()
  93.   {
  94.     CUnitLifeControl(1000.0);
  95.     m_DestroyPause = 7.5;
  96.     m_ExplosionId  = "EXPLID_GermanGunTowerExplosion";
  97.   }
  98. }
  99.  
  100. class CGermanGunTowerGun extends CGunTowerGun
  101. {
  102.   string BulletPatternId = "BULLETID_GermanGunTowerGunBullet";
  103.   string EffectOnFire    = "EFFECTID_GunTowerGunFireEffect";
  104.   string SoundOnFire     = "SOUNDID_GunTowerGunFireSound";
  105. }
  106.  
  107. // Building without ground control (for use in villages)
  108. class CBaseGermanGunTower extends
  109.   CBuilding, CUnitWithStateControl, CUnitWithBehavior, CArmedUnit
  110. {
  111.   void CBaseGermanGunTower()
  112.   {
  113.     InitializeModelAsAnimated("CGunTowerMesh");
  114.     CUnitWithStateControl("CGermanGunTowerStateControl");
  115.     CreateAnimatedWeapon("Gun", "CGermanGunTowerGun", "CGunTowerTargetingAnimator");
  116.     InitializeVehicleBehavior("CGunTowerBehavior");
  117.  
  118.     Core_AddClassificator("German");
  119.     Core_AddClassificator("GunTower");   // for cockpit identification
  120.     Core_AddClassificator("GroundUnit"); // for behavior fire logic
  121.   }
  122. }
  123.  
  124. // Single game object
  125. class CMountedGermanGunTower extends CBaseGermanGunTower
  126. {
  127.   void CMountedGermanGunTower()
  128.   {
  129.     InitializeGroundControl();
  130.   }
  131. }
  132.  
  133.  
  134.  
  135.  
  136. // Soviet gun tower
  137.  
  138. class CSovietGunTowerStateControl extends CUnitLifeControl
  139. {
  140.   void CSovietGunTowerStateControl()
  141.   {
  142.     CUnitLifeControl(1000.0);
  143.     m_DestroyPause = 7.5;
  144.     m_ExplosionId  = "EXPLID_SovietGunTowerExplosion";
  145.   }
  146. }
  147.  
  148. class CSovietGunTowerGun extends CGunTowerGun
  149. {
  150.   string BulletPatternId = "BULLETID_SovietGunTowerGunBullet";
  151.   string EffectOnFire    = "EFFECTID_GunTowerGunFireEffect";
  152.   string SoundOnFire     = "SOUNDID_GunTowerGunFireSound";
  153. }
  154.  
  155. // Building without ground control (for use in villages)
  156. class CBaseSovietGunTower extends
  157.   CBuilding, CUnitWithStateControl, CUnitWithBehavior, CArmedUnit
  158. {
  159.   void CBaseSovietGunTower()
  160.   {
  161.     InitializeModelAsAnimated("CGunTowerMesh");
  162.     CUnitWithStateControl("CSovietGunTowerStateControl");
  163.     CreateAnimatedWeapon("Gun", "CSovietGunTowerGun", "CGunTowerTargetingAnimator");
  164.     InitializeVehicleBehavior("CGunTowerBehavior");
  165.  
  166.     Core_AddClassificator("Russian");
  167.     Core_AddClassificator("GunTower");        // for cockpit identification
  168.     Core_AddClassificator("GroundUnit"); // for behavior fire logic
  169.   }
  170. }
  171.  
  172. // Single game object
  173. class CMountedSovietGunTower extends CBaseSovietGunTower
  174. {
  175.   void CMountedSovietGunTower()
  176.   {
  177.     InitializeGroundControl();
  178.   }
  179. }
  180.  
  181.  
  182.  
  183.